
<?php

/**
 * 应用配置整合系统
 * 自动扫描并整合各应用下的配置文件（排除路由配置）
 */

// 基础配置数组
$configs = [];

// 应用根目录
$appRoot = __DIR__ . '/../app';

// 扫描所有应用目录
$applications = [];
if (is_dir($appRoot)) {
    $applications = array_filter(glob($appRoot . '/*'), 'is_dir');
}

// 需要排除的配置文件（这些文件需要在框架初始化后单独加载）
$excludeFiles = ['route.php', 'middleware.php', 'process.php'];

// 遍历每个应用目录
foreach ($applications as $appDir) {
    $appName = basename($appDir);
    $configDir = $appDir . '/config';
    
    // 检查该应用是否有config目录
    if (!is_dir($configDir)) {
        continue;
    }
    
    // 初始化该应用的配置数组
    $configs[$appName] = [];
    
    // 扫描config目录下的所有配置文件
    $configFiles = glob($configDir . '/*.php');
    
    foreach ($configFiles as $configFile) {
        $configName = basename($configFile, '.php');
        
        // 跳过路由配置文件
        if (in_array(basename($configFile), $excludeFiles)) {
            continue;
        }
        
        try {
            // 安全地加载配置文件
            $config = require $configFile;
            if (is_array($config)) {
                $configs[$appName][$configName] = $config;
            }
        } catch (Exception $e) {
            // 如果配置文件有问题，记录错误但不中断
            error_log("加载配置文件失败: {$configFile} - " . $e->getMessage());
        }
    }
}

// 返回整合后的配置
return $configs;